/*
 * Copyright 2025 arisgo@163.com
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package com.arisgo.cloud.auth.sys.vo;

import com.arisgo.cloud.web.model.NumberIdWithTree;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

/**
 * 列
 *
 * @author Arisgo
 * @since 2024-07-02
 */
@Data
@Schema(description = "列信息")
public class ColumnVo extends NumberIdWithTree<ColumnVo> {

    /**
     * 表code
     */
    @Schema(name = "tableId", description = "表id")
    private Long tableId;

    /**
     * 唯一标识
     */
    @Schema(name = "code", description = "唯一标识")
    private String code;

    /**
     * 类型 selection/index/expand/default
     */
    @Schema(name = "type", description = "类型 selection/index/expand/default")
    private String type;

    /**
     * 列名
     */
    @Schema(name = "label", description = "列名")
    private String label;

    /**
     * 字段
     */
    @Schema(name = "field", description = "字段")
    private String field;

    /**
     * 宽度
     */
    @Schema(name = "width", description = "宽度")
    private String width;

    /**
     * 位置
     */
    @Schema(name = "align", description = "位置")
    private String align;

    /**
     * 固定列
     */
    @Schema(name = "fixed", description = "固定列")
    private Boolean fixed;

    /**
     * 隐藏
     */
    @Schema(name = "hide", description = "隐藏")
    private Boolean hide;

    /**
     * 排序
     */
    @Schema(name = "sortable", description = "排序")
    private Boolean sortable;

    /**
     * 搜索
     */
    @Schema(name = "search", description = "搜索")
    private Boolean search;

    /**
     * 搜索类型 default/date/select
     */
    @Schema(name = "searchType", description = "搜索类型 default/date/select")
    private String searchType;

    /**
     * 下拉选项
     */
    @Schema(name = "options", description = "下拉选项")
    private String options;

}
